package com.sky.service;

import com.sky.dto.EmployeeDTO;
import com.sky.dto.EmployeeLoginDTO;
import com.sky.dto.EmployeePageQueryDTO;
import com.sky.dto.PasswordEditDTO;
import com.sky.entity.Employee;
import com.sky.result.PageBean;
import com.sky.vo.employee.EmployeeLoginVO;
import com.sky.vo.employee.EmployeeVO;

import java.util.List;

public interface EmployeeService {
    /**
     *   分页查询
     * @param condition 分页及自定义条件
     * @return
     */
    PageBean pageList(EmployeePageQueryDTO condition);

    /**
     *   获取员工列表
     * @return
     */
    List<EmployeeVO> list();

    /**
     *   新增员工
     * @param emp
     */
    void add(EmployeeDTO emp);

    /**
     *  修改员工
     * @param emp
     */
    void update(EmployeeDTO emp);

    /**
     *  根据id查询员工
     * @param id
     * @return
     */
    Employee getById(Integer id);

    /**
     *  根据id删除员工
     * @param id
     */
    void deleteById(Integer id);

    /**
     *   员工登录
     * @param employeeLoginDTO  登录参数
     * @return  用户的jwt信息
     */
    EmployeeLoginVO login(EmployeeLoginDTO employeeLoginDTO);

    /**
     *   启用、禁用员工账号
     * @param status  状态
     * @param id   要操作的员工id
     */
    void updateStatus(Integer status, Integer id);

    /**
     *  修改密码
     * @param passwordEditDTO 修改密码
     */
    void editPassword(PasswordEditDTO passwordEditDTO);
}
